

#ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_MYCIRCLE_LAYOUT_PROPERTY_H
#define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_MYCIRCLE_LAYOUT_PROPERTY_H

#include "base/geometry/dimension.h"
#include "core/components_ng/layout/layout_property.h"
#include "core/components_ng/property/property.h"

namespace OHOS::Ace::NG {
class ACE_EXPORT MyCircleLayoutProperty : public LayoutProperty {
    DECLARE_ACE_TYPE(MyCircleLayoutProperty, LayoutProperty);

public:
    MyCircleLayoutProperty() = default;

    ~MyCircleLayoutProperty() override = default;

    RefPtr<LayoutProperty> Clone() const override
    {
        auto value = MakeRefPtr<MyCircleLayoutProperty>();
        value->LayoutProperty::UpdateLayoutProperty(DynamicCast<LayoutProperty>(this));
        value->propRadius_ = CloneRadius();
        value->propEdgeWidth_ = CloneEdgeWidth();
        return value;
    }

    void Reset() override
    {
        LayoutProperty::Reset();
        ResetRadius();
        ResetEdgeWidth();
    }

    ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(Radius, Dimension, PROPERTY_UPDATE_MEASURE);
    ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(EdgeWidth, Dimension, PROPERTY_UPDATE_MEASURE);

    ACE_DISALLOW_COPY_AND_MOVE(MyCircleLayoutProperty);
};
} // namespace OHOS::Ace::NG

#endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_MYCIRCLE_LAYOUT_PROPERTY_H
